#ifndef SYMBOL_DOT_H
#define SYMBOL_DOT_H

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

#define SYMBOL_NOT_FOUND 0
#define SYMBOL_FOUND 1

typedef struct 
{
  enum type_symbol {
    S_ID,
    S_TMP,
    S_CST,
  } type;
  union value {
    char* name;
    char* strcst;
    int cst;
  } val;
  enum val_t {
  TYPE_BOOL,
  TYPE_INT,
  TYPE_BOOL_REF,
  TYPE_INT_REF,
  TYPE_BOOL_ARRAY,
  TYPE_INT_ARRAY,
  TYPE_UNIT,
  TYPE_STR
  } valType;
  int size;
  unsigned long int quadRef;
} symbol;



symbol newSymbol(enum type_symbol type,void *val,enum val_t val_t);

void printSymbol(symbol s);
void printValType(enum val_t valtype);

void setSizeVal(symbol* pt,unsigned int size);

#endif
